defect life cycle in testing